GPT3.51 - 论文精读学习笔记

Fine-Tuning Language Models from Human Preferences标签:Basic Architectures of LLMs
论文链接:Fine-Tuning Language Models from Human Preferences
官方项目/代码:lm-human-preferences
代码:知乎博文代码
Cook
Published: 2024.09.03 | Last Updated: 2024.09.10

You are what you eat.
And I'm cooking what I eat!
:)

More food...🍜

目录

提前说明:本系列博文主要是对参考博文的解读与重述(对重点信息进行标记、或者整段摘录加深自己的记忆和理解、融合多个博文的精髓、统合不同的代表性的案例),仅做学习记录笔记使用。与君共享,希望一同进步。

 

背景

题目的翻译:基于人类偏好微调语言模型

 

RLHF在LLM时代的重要性和亮点

Reinforcement Learning from Human Feedback, RLHF

大型语言模型LLM近年来在根据人类提示生成多样文本上取得巨大成功,但衡量“好”文本仍然是个挑战,因为这涉及主观判断和情境依赖性。传统训练方法如预测下一个词(例如交叉熵)有其局限性,而标准指标如BLEU和ROUGE仅提供简单的文本比对。这里就是从人类反馈中学习的强化学习(RLHF)重要性所在:它透过直接利用人类反馈来优化模型,使得大型语言模型不仅适应广泛文本资料,还能对齐人类复杂价值观,为语言模型的发展开启新的可能性

  1. RLHF在LLM微调中的角色与重要性

    • RLHF将人类判断转化为奖励学习,这使得可以将强化学习应用于以人类判断为基准的复杂任务

    • 在自然语言处理领域,RLHF利用人类偏好训练出的奖励模型对语言模型进行微调,这个过程超越了纯粹的监督学习,让模型更接近人类的使用和理解方式

    • RLHF特别适用于没有充足监督资料集的NLP任务,或者当现成的程序化奖励函数不足以作为真实目标的良好代理时。

  2. 研究亮点

    • 风格化续写任务中,使用5k个人类比较就能达到良好的结果,微调模型被人类选择的频率达到86%,优于无微调的模型(zero-shot)和监督学习微调的情感网络。

    • 摘要任务中,用60k 个人类样本训练的模型能够像“聪明的复制机”一样工作,它们通常从输入文章中复制整句,但会变化复制内容以跳过不相关的前言,这种行为自然地从资料收集和训练过程中产生,没有使用任何明确的复制机制

 

OpenAI提供的ChatGPT练成过程可以看到人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)训练的三步骤:

image-20240909105635639

 

预训练 + 人类偏好:OpenAI 19年出的文章,将自然语言处理的模型预训练人类偏好学习相结合,该文章的思路是当前火热的 RLHF 的雏形方案。

 

 

引言

我们希望将强化学习应用于那些仅通过人类判断来定义的复杂任务在这些任务中,只有通过询问人类才能判断结果的好坏1. 目的】。为此,我们可以1 首先使用人类标签来训练一个奖励模型,2 然后优化该模型。尽管有大量通过与人类互动来学习此类模型的研究,但这些研究直到最近才被应用于现代深度学习,并且即便如此,也仅应用于相对简单的模拟环境(Christiano等,2017;Ibarz等,2018;Bahdanau等,2018)。相比之下,在现实世界中,人类需要向AI代理指定复杂目标,这可能涉及并需要自然语言,这是表达价值观念的丰富媒介。当代理必须与人类进行交流以提供更准确的监督信号时,自然语言尤为重要(Irving等,2018;Christiano等,2018;Leike等,2018)。 自然语言处理最近取得了显著进展。一种成功的方法先在无监督数据集上预训练一个大型生成语言模型,然后对该模型进行监督任务的微调2.做法与对比】(Dai和Le,2015;Peters等,2018;Radford等,2018;Khandelwal等,2019)。这种方法通常显著优于从头开始训练监督数据集,并且一个单一的预训练语言模型通常可以通过微调在许多不同的监督数据集上达到最先进的性能【3. 做法的优势】(Howard和Ruder,2018)。在某些情况下,不需要微调:Radford等(2019)发现,经过生成训练的模型在无需额外训练的情况下(零样本)在NLP任务上表现良好。 将强化学习应用于自然语言任务有着悠久的历史。许多这方面的工作使用算法定义的奖励函数,例如翻译的BLEU(Ranzato等,2015;Wu等,2016)、摘要的ROUGE(Ranzato等,2015;Paulus等,2017;Wu和Hu,2018;Gao等,2019b)、基于音乐理论的奖励(Jaques等,2017)或故事生成的事件检测器(Tambwekar等,2018)。Nguyen等(2017)在BLEU上使用了RL,但应用了几个错误模型来模拟人类行为。Wu和Hu(2018)和Cho等(2019)从现有文本中学习连贯性模型,并将其用作摘要和长文生成的RL奖励。Gao等(2019a)通过将奖励学习应用于一篇文章一次构建了一个交互式摘要工具。使用人类评价作为奖励的实验包括Kreutzer等(2018),他们使用离线策略奖励学习进行翻译,以及Jaques等(2019),他们将Jaques等(2017)的修改版Q学习方法应用于对话中的隐式人类偏好。Yi等(2019)从人类那里学习奖励以微调对话模型,但对奖励进行了平滑处理以允许监督学习。我们参考Luketina等(2019)对涉及语言作为组件的RL任务和使用迁移学习进行RL结果的调查。

image-20240904212947731

在本文中,我们结合了自然语言处理中的预训练进展人类偏好学习。我们使用从人类偏好中训练的奖励模型,通过强化学习而不是监督学习微调预训练的语言模型。根据Jaques等(2017;2019)的研究,我们使用KL约束来防止微调模型偏离预训练模型。我们将我们的方法应用于两类任务:以匹配目标风格(如正面情感或生动描述性语言)的方式继续文本,以及对CNN/Daily Mail或TL;DR数据集(Hermann等,2015;Völske等,2017)中的文本进行摘要。我们的动机是处理那些没有或不足的监督数据集的NLP任务,以及那些程序化奖励函数是我们真实目标的糟糕代理的任务

  • 对于风格化续写任务,我们使用5,000个人类比较(每次选择4个续写中的最佳一个)进行微调,使得微调后的模型在86%的情况下被人类更喜欢,而对比零样本学习为77%,对比监督学习的情感网络为77%【体现出无监督预训练+微调的效果更好】

  • 对于摘要任务,我们使用60,000个人类样本来训练模型,这些模型可以大致描述为“智能复制器”:它们通常从输入中复制整句话,但会跳过不相关的开头。这种复制行为自然地从数据收集和训练过程中出现;我们没有使用任何显式的复制机制(如See等,2017;Gehrmann等,2018)。一种解释是,复制是一种容易准确的方式,因为我们没有指示标签者惩罚复制,而是指示他们惩罚不准确。它还可能反映了一些标签者检查复制作为快速确保摘要准确性的一种启发式方法。确实,人类标签者显著更喜欢我们的模型而不是监督微调的基线,甚至比人类编写的参考摘要还要喜欢,但不如复制前三句话的基线 【好处:这种行为(跳过不相干部分)并不是通过显式的复制机制实现的,而是在数据收集和训练过程中自然出现的】

    启发 这里 ↑ 有点意思,可以深入看看!

    对于摘要任务,我们继续收集额外数据,并在策略改进时重新训练我们的奖励模型(在线数据收集)。我们还测试了离线数据收集,使用原始语言模型的数据来训练奖励模型;离线数据收集显著降低了训练过程的复杂性。对于TL;DR数据集,人类标签者71%的时间更喜欢在线数据收集训练的策略,而在定性评估中,离线模型通常提供不准确的摘要。相比之下,对于风格化续写任务,我们发现离线数据收集效果同样好。这可能与风格任务所需的数据非常少有关;Radford等(2017)显示,生成训练的模型可以从很少的标签样本中学习分类情感。

在并行工作中,Böhm等(2019)也使用人类评估来学习摘要的奖励函数,并使用RL优化该奖励函数。他们的工作更详细地调查了CNN/Daily Mail数据集上学习的策略和奖励函数,而我们更广泛地探索了从人类反馈中学习,并在更大的计算规模上进行探索。因此,我们考虑了几个额外的任务,探索了在线奖励模型训练和更多数据的效果,并对大规模语言模型进行了奖励建模和RL微调。

 

1 奖励模型增强强化学习对任务处理的过程

在线情况下,这两个过程是交替进行的,也就是说,奖励模型和策略会不断地互相优化,形成一个循环。【优化点】

2 好处

奖励模型和策略模型在互相优化的过程中,策略模型会逐渐生成更符合人类偏好的回答,奖励模型也会越来越准确地评估这些回答。【不断优化回答,使其适应上下文环境进行有效反馈】

3 举例

4 引言核心内容

研究动机:希望将强化学习应用于复杂任务 【自然语言】,这些任务仅通过人类判断来定义,且需要自然语言来表达复杂的价值概念。

现状分析:虽然之前有大量研究通过与人类互动来学习模型,但这些研究主要应用于简单的模拟环境。现代深度学习下的奖励学习仍然主要集中在相对简单的环境中 【自然语言和模拟环境经过奖励学习的比较】

自然语言处理的进展:预训练大型生成语言模型,然后对其进行监督任务的微调,这种方法在许多监督数据集上表现优异,甚至在某些情况下无需微调即可在NLP任务中表现良好。

强化学习在自然语言任务中的应用:过去的工作主要使用算法定义的奖励函数,但本文结合了自然语言处理中的预训练进展和人类偏好学习,通过奖励模型进行强化学习微调。 总的来说, 提出了一种新的方法,将人类偏好与预训练语言模型相结合,通过强化学习进行微调,以解决自然语言处理中的复杂任务。这种方法特别适用于没有或不足的监督数据集,以及那些程序化奖励函数不充分的任务。

 

全文梗概

摘要解读

奖励学习使得强化学习(RL)可以应用于那些通过人类判断来定义奖励【1. 关键词是什么】 的任务,通过向人类提问来建立奖励模型大多数关于奖励学习的研究使用了模拟环境,但复杂的价值信息通常以自然语言表达【2. 对比】,我们认为将奖励学习应用于语言是使RL在实际任务中实用且安全的关键。在本文中,我们基于生成预训练语言模型的进展,将奖励学习应用于四个自然语言任务:继续生成正面情感文本或物理描述性语言,以及TL;DR和CNN/Daily Mail数据集上的摘要任务【3. 任务】。对于风格化续写任务,我们仅通过5000次人类比较就取得了良好结果。对于摘要任务,通过60,000次人类比较训练的模型能够复制整句话但跳过不相关的前言;这导致合理的ROUGE分数和人类标签者的优异表现,但可能利用了标签者依赖简单启发式的事实 【4. 实验结果】。

  1. 奖励学习:通过人类的反馈来定义奖励,从而指导强化学习(RL);

  2. 模拟环境:之前的研究主要在虚拟环境中进行,但这些环境往往过于简单,无法反映现实世界的复杂性。比如:选择最短的路径通关游戏,相比于自然语言,复杂度相差甚远

  3. 主要任务:奖励模型使得强化学习在处理任务更有效。指的是自然语言那类任务

  4. 实验结果:

    • 风格化续写:仅通过5000次人类比较就取得了良好结果,这表明人类反馈在指导模型生成方面非常有效。

    • 摘要任务:通过60,000次人类比较训练的模型能够生成合理的摘要,尽管这种方法可能依赖了人类标签者使用简单启发式的事实。

 

本文方案

 

实现方式

image-20240904212947731

  1. 词汇和语言模型

    以一个预先训练好的语言模型为出发点,该模型能够预测文章序列的概率。

    从一个词汇集 和一个语言模型 ρ 开始,该模型定义了序列 n 上的概率分布,这可以通过如下公式表示:

    • 对于语言模型 ρ ,定义了token序列上的概率分布

      (1)ρ(x0xn1)=0k<nρ(xk|x0xk1)

      以摘要任务为例,模型的输入一般是最多1000字的文章,输出 y 可以是一个100个词的摘要。

      ρ 通过 ρ(y|x)=ρ(xy)ρ(x) 定义了该任务的概率策略:将样本的开头固定为 x,并使用 ρ 生成后续token。

    • 这个公式表示的是一个语言模型 ρ 用于计算一个序列 x0xn1 出现的概率,这个序列由 n 个token(例如单词或字符)组成。模型做的是将整个序列的联合概率分解成了一连串的条件概率的乘积。

      具体来说:

      • ρ(x0xn1)是整个序列从第一个token x0 到最后一个token xn1 的联合概率。

      • 符号表示乘积,这里用于连乘每个token xk 在其前面所有token的 x0xk1 已知的情况下出现的条件概率。

      • ρ(xk|x0xk1) 是给定序列中前 k1 个token后,第 k 个token出现的条件概率。

    • 这个乘积过程从序列的第一个token开始,计算第二个token出现在第一个token之后的条件机率,然后计算第三个token出现在前两个token之后的条件机率,以此类推,直到计算出最后一个token的条件机率。将所有这些条件机率相乘,就得到了整个序列出现的机率。

      这种方法是建立在token序列是按照一定顺序依次生成的假设上的,每个token的生成只依赖于它前面的token。这就是语言模型如何利用过去的信息来预测下一个token(字词)的基础,并且是许多自然语言处理任务的核心,例如文章生成、机器翻译和语音识别。

  2. 任务应用

    将语言模型 ρ 应用于特定任务,例如文章摘要,其中任务的输入是文章(x),输出是摘要(y

    将该模型应用于输入空间 X=m ,资料分布 D 覆盖 X ,输出空间 Y=n 的任务。例如,xX 可以是一篇长达1000字的文章,yY 可以是一个100字的摘要。通过 ρ(y|x)=ρ(xy)ρ(x) 定义这个任务的概率策略,即固定样本的开始为 x 并使用 ρ 生成后续token。

    • ρ(y|x) 表示在已知前文 x 的情况下,生成文章 y 的概率。

    • ρ(xy) 是连续文章序列 xy (即将 xy 结合起来形成的序列)出现的概率。

    • ρ(x) 是前文 x 自己出现的概率。

    这个公式本质上是在问:在我们已经看到 x 的情况下,接下来看到 y 的概率有多大?这是生成模型特别关注的问题,因为它决定了模型生成文章的连续性和一致性。这种条件概率分布是语言模型生成文章时的基础,使模型能够根据给定的前文继续生成自然语言文章。

  3. 策略初始化与微调

    先给电脑一个基本指令集 π ,然后透过试错和奖励 r 来学习如何更好地完成任务。

    初始化策略 π=ρ,然后使用RL微调 π 来更好地执行任务。如果任务由一个奖励函数 r:X×Y R 定义,则可以直接使用RL来优化期望奖励:

    (2)Eπ[r]=Ex~D,y~π(|x)[r(x,y)]

    这个公式描述的是期望奖励(expected reward)的计算方法,其中 π 是一个策略,它根据输入 x 生成输出 y 的概率分布。具体来说:

    • Eπ[r] 表示在策略 \pi 下,奖励函数 r 的期望值;

    • x~D 表示从资料分布 D 中抽样得到输入 x

    • y~π(|x) 表示根据策略 π ,给定输入 x 之后生成输出 y

    • r(x,y) 是奖励函数,它评估给定输入 x 和策略生成的输出 y 的质量或者符合度。

    但是在这里本文期望让模型更符合人类的评价,这需要通过询问人类来获得奖励。

    本文首先基于人类标注来训练一个奖励模型,然后对奖励模型进行优化。

  4. 人类评估和奖励函数学习

    利用人类评估来训练一个奖励函数,该函数评估生成文章的质量

    根据Christinaniano等人的方法,通过让人类标注者选择对给定输入 x 最佳的多个 yi 值,来学习一个奖励函数。收集资料集 S 并使用以下损失来训练奖励模型 r

    (3)loss(r)=E(x,{yi})~S[loger(x,yb)ier(x,yi)]

    其中,b 是人类选择的选项。

    这个损失函数 loss(r) 用于训练奖励模型,其中 r 是评估给定输入 x 输出 yi 组合好坏的函数。

    • x 是输入,如一段文章或问题。

    • yi 是输出的可能回答, yb 是被人类评审选择为最佳回答的选项。

    • S 是包含输入 x 和所有可能回答 yi 的资料集。

    • er(x,yb) 表示将奖励函数的输出通过指数函数转换,这常用于将任何数值映射到正数范围,以便进行概率比较。

    损失函数的目标是最小化模型对于选择最佳回答的不确定性。在这个公式中,我们寻找一个奖励函数 r ,使得当我们对每个输入 x 和对应的回答集合 yi 求期望时,模型选择人类偏好的 yb 的概率最大化。

    log 函数帮助将指数转换的结果变回对资料集 S 中每个 (x,yi) 组合的奖励进行对数概率评分,并且这个评分反映了人类对每个可能回答的偏好程度。

    • 代码演示

    • 训练奖励模型

      • 对于指定任务的输入 x,让人类标注员挑选最好的输出 yi

        • 从四个输出 (y0,y1,y2,y3) 中挑选(可以考虑更多的选项来让人分摊阅读和理解提示 x 的成本,OpenAI之后出的InstructGPT就采用了更多的选项设计)

      • 基于标注的数据训练奖励模型奖励模型就是在 ρ 模型输出embedding后增加一个线性层得到奖励值,正则化处理到均值为0,方差为1

      • loss设计如下:

        设计的思路是:让模型对于人类喜好的回答输出更高的奖励

        (4)loss(r)=E(x,{yi}i,b)~S[loger(x,yb)ier(x,yi)]
  5. 微调奖励模型

    损失函数帮助训练奖励模型,KL惩罚项 βKL(π,ρ) 防止模型在生成文章时偏离预训练模型过多,保持一定的一致性和连贯性。

    微调策略 π 来优化奖励模型 r,并添加一个惩罚项 β 以防止 πρ 太远,该惩罚项的期望为 βKL(π,ρ) 。这样,执行RL在修改后的奖励函数R(x,y)上:

    (5)R(x,y)=r(x,yb)βlogπ(y|x)ρ(y|x)

    这边的 logπ(y|x)ρ(y|x) 为KL Divergence的一种表达形式,详细推导过程见 博文3

    • 代码演示

    • 强化学习训练

      • 为了避免强化学习微调的模型 π 和原始模型 ρ 差距太大,增加了一个基于KL散度计算的惩罚项

        (6)R(x,y)=r(x,y)βlogπ(y|x)ρ(y|x)

        该项有熵加成的作用,防止policy偏移r有效范围太远;在风格文本续写任务下,这也是任务定义的重要组成部分:要求人类评估风格,但依靠KL散度来鼓励连贯性和话题性

  6. 整体训练流程

    使用强化学习算法(如PPO)对语言模型进行微调,以便根据奖励函数生成更优质的文章样本并定期重新训练奖励模型 r

    包括从分布 Dρ(|x) 中收集样本,训练奖励模型 r,使用PPO微调策略 π,并在线上资料收集情况下,持续收集额外资料。

    • 收集人类标注数据。即,让标注员在模型输出的4个回答中挑选最好的回答;

    • 基于预训练模型 ρ 对奖励模型 r 进行初始化,并基于人类标注数据对奖励模型进行训练;

    • 使用 Proximal Policy Optimization(PPO) 进行强化学习训练;

    • 对于在线数据收集的情况,继续收集额外的训练样本,并定期重新训练奖励模型 r

 

预训练模型细节

 

惩罚项 β 的微调细节说明 Fine-tuning details

摘说明核心概念部分

 

微调细节

 

数据集

在线数据采集

实验结果

 

参考与补充

Basics of Reinforcement Learning for LLMs

很好的说明强化学习在LLM定制化应用的基础,从不可微分的离散式奖励(经典的Q Learning)到连续的、基于梯度(可微分的)RLHF与PPO。

image-20240909215637806

Illustrating Reinforcement Learning from Human Feedback (RLHF)

Step1. Pretraining language models

image-20240909215748618

预训练语言模型(Pretraining language models)的过程包括以下步骤:

  1. 使用已训练的语言模型:RLHF作为起点使用一个已经过经典预训练目标预训练好的语言模型。

  2. 参数规模:OpenAI使用GPT-3的较小版本来建立其首个受欢迎的RLHF模型,InstructGPT。在共享的论文中,Anthropic使用了从1000万到520亿参数的转换模型(Transformer models)来进行这项任务。DeepMind记录使用了高达2800亿参数的模型Gopher。

  3. 可选的微调:这个初始模型还可以基于额外的文章或条件进行微调,但这不是必须的。例如,OpenAI在人类生成的“更受偏好”的文章上进行了微调,而Anthropic则通过将原始LM对照上下文线索进行蒸馏,产生了适合他们“有用、诚实和无害”标准的初始RLHF语言模型。

  4. 生成训练奖励模型的资料:需要生成资料来训练奖励模型,这是将人类偏好整合进系统的方式。

这个流程的核心是拥有一个对多样化指令反应良好的模型。目前还没有明确的答案说明“哪一个模型”是RLHF起点的最佳选择。

Step2. Reward model training

image-20240909221444737

奖励训练模型(Reward Model Training)的概念与步骤如下:

奖励模型(RM,也称为偏好模型)的目的是建立一个模型,它能够接收一段文章序列,并返回一个标量奖励(scalar reward),这个奖励数值上代表人类的偏好。

在这过程中,使用初始语言模型生成文章,以及一个偏好模型给予评分,这个评分反映了人类对该文章的感知程度。接下来,Step3中使用RL来优化原始语言模型,以便与奖励模型相协调。

Rθ(x) 表示给定文章 x 的奖励模型,其中 θ 表示模型的参数。然后我们通过最大化期望奖励来训练语言模型 π 的参数 ϕ

(11)maxϕEx~πϕ[Rθ(x)]

这里 x 是语言模型 πϕ 生成的文章,而 Rθ(x) 是该文章根据奖励模型获得的评分。以下是过程中各项目的说明:

Step3. Fine-tuning with RL

image-20240909223825125

  • 强化学习(RL)对语言模型(LM)进行微调的过程简要

    • 资料集提示:从提示资料集中取出一个提示 x,例如:“狗是...”。

    • 初始语言模型:这个模型产生基础文章 y,例如:“a furry mamal”。

    • 调整语言模型(RL策略):经过RL微调的模型根据相同的提示生成调整过的文章,例如:“man's best friend”。

    • 奖励(偏好)模型:评估调整过的文章并返回一个标量的“偏好度” rθ(y|x)

    • KL预测偏移惩罚:计算RL策略生成的每个token的概率分布与初始模型的概率分布之间的Kullback-Leibler(KL)散度 DKL(πPPO(y|x)||πbase(y|x)) ,这个散度(比对两个概率分布是否接近)作为惩罚项,防止RL策略与初始预训练模型相比有太大的偏移。

    • 强化学习更新:使用策略优化演算法(目前主流是Proximal Policy Optimization, PPO)更新模型的参数 θ ,按照梯度 θJ(θ) 来更新奖励函数走向。

技术说明:尽管图表看起来两个模型为相同的提示生成不同的回应,但实际上是RL遵循策略生成文章,然后将这些文章送入初始化模型以产生用于KL惩罚的相对概率。在训练过程中,这个初始模型不会受到梯度更新的影响。

观念转换:将传统的微调(Fine-tune)任务定义为RL问题。

 

开源工具 for RLHF

Implicit Language Q-Learning, ILQL. 值得关注的新RL算法。

算法 Fine-tuning 20B LLMs with RLHF on a 24GB consumer GPU

Demo RLHF+PEFT

算法The Full Story of Large Language Models and RLHF

image-20240910153956625

image-20240910154016283

What RLHF actually does to an LLM

这边从概率分布匹配的观点来解释RLHF对LLM的微调如何对齐人类的意图

image-20240910154121683

A multimodal distribution with three modes or “peaks”. The base model is trained to approximate the distribution of internet text, which has millions of different modes corresponding to different sources, styles, and voices.

图中可以看到一个具有三个模式或“峰值”的多模态分布。基础模型(Base Model)被训练来近似互联网文章的分布,这个分布有数百万不同的模式,对应于不同的来源、风格和声音。

RLHF对于“纯粹”的基础大型语言模型(LLM)的微调实际上是这样一个过程:

  1. 分布匹配:理想的基础模型可以完美地复制互联网文章的高度多模态分布,这意味着它成功地完成了分布匹配任务。

  2. 输出的不确定性:然而,在推理时,这样的理想模型可能会展现出一种不稳定性,即在选择数百万模式中的哪一个时,可能会有所波动。

例如,当用户提出有关某著名政治人物的查询时,模型可能产生一个模仿中立、资讯性维基百科文章调调的输出(可以说它选择了分布中的百科全书模式)。相反地,根据问题的措词,模型可能会被诱导采用一种更极端的观点,这种观点是受到互联网上遇到的激进观点的启发。

在基础模型预测在分布中两种不同模式之间的数值估计只有细微差异的情况下,应该选择哪种模式?完全依赖模型的随机决策性质不是理想的解决方案。

算法 LLM(七):RLHF——当语言模型遇上强化学习

过去几年里,以chatGPT为代表的基于prompt范式的大型语言模型 (Large Language Model,LLM) 取得了巨大的成功。然而,对生成结果的评估是主观和依赖上下文的,这些结果难以用现有的基于规则的文章生成指标 (如 BLUE 和 ROUGE) 来衡量。除了评估指标,现有的模型通常以预测下一个单词的方式和简单的损失函数 (如交叉熵) 来建模,没有显式地引入人的偏好和主观意见。

因此,训练阶段,如果直接用人的偏好(或者说人的反馈)来对模型整体的输出结果计算reward或loss,显然是要比上面传统的“给定上下文,预测下一个词”的损失函数合理的多。基于这个思想,便引出了本文要讨论的对象——RLHF(Reinforcement Learning from Human Feedback):即使用强化学习的方法,利用人类反馈信号直接优化语言模型。

--->还有很多,请看原文博文3

 

补充

head-to-head matchups, an Elo system 头对头比较与Elo系统

Elo系统是一种用来评估玩家或模型相对实力的排名系统,最初被用于国际象棋,但后来被广泛应用于其他领域,包括作为机器学习模型评估的一部分。 Elo系统的核心是一个数学模型,它赋予每个参与者一个数值排名,表示其实力水平。当两个参与者进行比赛时,系统会根据比赛结果来调整它们的排名。

在RLHF(Reinforcement Learning from Human Feedback)的上下文中,头对头比较和Elo系统可以帮助决定哪些模型生成的文章更能符合人类偏好。具体步骤如下:

  1. 初始排名:每个语言模型开始时都被分配一个初始Elo排名。

  2. 生成文章:每个模型根据相同的提示生成文章。

  3. 头对头比较:将两个模型生成的文章进行比较。这通常是通过人类评审来完成,他们会选择他们更偏好的文章。

  4. 更新排名:根据头对头比较的结果,使用Elo系统更新模型的排名。如果一个模型的输出(文章)被选择,那么该模型的排名将上升;如果没被选择,则下降。

  5. 计算新排名:Elo排名的更新是通过以下公式进行的:

    (14)R=R+K×(SE)

    其中:

    • R 是更新后的排名。

    • R 是比赛前的排名。

    • K 是系统设定的权重因子,用于控制排名变化的幅度。

    • S 是实际比赛结果(胜利为1,平局为0.5,失败为0)。

    • E 是预期比赛结果,由以下公式计算:

      (15)E=11+10(RR)/400

      在这里,R 是对手的排名。

    通过这种方法,每次比较后,模型的Elo排名将更加精确地反映其生成文章的质量。这样,Elo排名可以作为奖励模型训练中标量奖励信号的一部分。

 

想法

博文1

 

参考博文

  1. Fine-Tuning Language Models from Human Preferences

    点评:★★★☆☆ 文档相对较长,但是文字太多,实例略少,很多是了解型,大多数看完之后并不是很懂,还需要多看很多遍(同时结合其他博文吧...)

  2. 论文阅读03(基于人类偏好微调语言模型)

    点评:★★★★☆ 文档对基础知识进行了介绍,重要的是,给定了一些案例,这个让我觉得很赞,所以必须四颗星。

  3. Fine-Tuning Language Models from Human Preferences (RLHF)論文筆記-ChatGPT鍊成術

    点评:★★★☆☆ 老实说,这个文档写的挺多的,但是也可能是我自己的原因,只顾在对内容进行整理和分类,没有深入去看其中的内容,但是有几点还是要评论一下,首先是台湾同胞写的,所以,用了中文繁体字,看起来比较麻烦,比如概率分布(几率分布)。其次,整个文章的排版和缩进无法区分具体的模块,导致不理解、没背景知识的人会很难捕捉到知识点所属类别。总的来说,文字多并不是一篇好文章的标准,重要的是能把概念讲清楚才算好。 这篇文章主要讲的是奖励模型相关内容,还是值得好好琢磨的。为微调提供了另一个思路或者说拓展了另一个思路。

引申可看

  1. GPT系列论文阅读笔记

  2. LLM成功不可或缺的基石:RLHF及其替代技术

  3. [译] [论文] InstructGPT:基于人类反馈训练语言模型遵从指令的能力(OpenAI,2022)

 

原文目录

1 Introduction 1 2 Methods 2 2.1 Pretraining details 3 2.2 Fine-tuning details 3 2.3 Online data collection 4 2.4 Human labeling 4 3 Experiments 4 3.1 Stylistic continuation tasks 5 3.1.1 Mock sentiment task 5 3.1.2 Human evaluations of continuations 6 3.2 Summarization 7 3.2.1 What our models copy 9 4 Challenges 11 4.1 Online data collection is hard 11 4.2 Sharing parameters between reward model and policy causes overfitting 12 4.3 Ambiguous tasks make labeling hard 12 4.4 Bugs can optimize for bad behavior 12 5 Conclusion 13 A Instructions for labelers 16 A.1 Sentiment 16 A.2 Descriptiveness 16 A.3 Summarization: TL;DR 16 A.4 Summarization: CNN/DM 16 B Human labeling details 16 C Samples 17

 

博文免责声明

  1. 本条博文信息主要整合自网络,部分内容为自己的理解写出来的,如有断章截句导致不正确或因个人水平有限未能详尽正确描述的地方,敬请各位读者指正;

  2. 引用出处可能没有完全追溯到原始来源,如因此冒犯到原创作者,请联系本人更正/删除;

  3. 博文的发布主要用于自我学习,其次希望帮助到有共同疑惑的朋友。

欢迎随时联系讨论,一起成长进步。

 


1 Ziegler D M, Stiennon N, Wu J, et al. Fine-tuning language models from human preferences[J]. arXiv preprint arXiv:1909.08593, 2019.